The ability to perceive two-dimensional images in three-dimensions by way of numerous different technologies has grown quite popular over the past few years. Providing an aspect of depth to two-dimensional images potentially creates a greater sense of realism to any depicted scene. This introduction of three-dimensional visual representation has greatly enhanced viewer experiences, especially in the realm of video games.
A number of techniques exist for the three-dimensional rendering of a given image. Most recently, a technique for projecting a two-dimensional image(s) into three-dimensional space known as depth-image-based rendering (DIBR) has been proposed. In contrast to former proposals, which often relied on the basic concept of “stereoscopic” video, i.e., the capturing, transmission, and display of two separate video streams—one for the left eye and one for the right eye-, this new idea is based on a more flexible joint transmission of monoscopic video (i.e., single video stream) and associated per-pixel depth information. From this data representation, one or more “virtual” views of the 3-D scene can then be generated in real-time at the receiver side by means of so-called DIBR techniques. This new approach to three-dimensional image rendering presents several advantages over previous approaches.
There are generally two ways to present two separate images to a viewer to create the illusion of depth. In a system commonly used for projection of 3D images onto a screen there are two separate synchronized projectors for the left-eye and right-eye images. The images for both eyes are projected onto a screen simultaneously but with orthogonal polarizations, e.g., vertical polarization for the left-eye image and horizontal polarization for the right eye image. The viewer wears a special pair of polarized 3D-viewing glasses having appropriately polarized lenses for the left and right eyes (e.g., vertically polarized for the left eye and horizontally polarized for the right eye). Because of the polarization of the images and the lenses, the viewer perceives only the left eye image with the left eye and only the right eye image with the right eye. The degree of the illusion of depth is partly a function of the offset between the two images on the screen.
In 3D video systems, the left-eye and right eye images are displayed by a video display screen but not exactly simultaneously. Instead, the left-eye and right-eye images are displayed in an alternating fashion. The viewer wears a pair of active shutter glasses that shutter the left eye when the right-eye image is displayed and vice versa.
The experience of 3-D video can depend somewhat on the peculiarities of human vision. For example, the human eye has a discrete number of light receptors, yet humans do not discern any pixels, even in peripheral vision. What is even more amazing is that the number of color-sensitive cones in the human retina can differ dramatically among individuals—by up to a factor of 40. In spite of this, people appear to perceive colors the same way—we essentially see with our brains. The human vision system also has an ability to ascertain alignment of objects at a fraction of a cone width (hyperacuity). This explains why spatial aliasing artifacts (i.e., visual irregularities) are more noticeable than color errors.
Realizing this fact, graphics hardware vendors put significant efforts in compensating for aliasing artifacts by trading color accuracy for spatial continuity. Multiple techniques are supported in hardware, based on mixing weighted color samples, similar to the integrating property of digital cameras.
Of course, any aliasing artifact will eventually disappear with an increase in display resolution and sampling rates. It can also be handled at lower resolutions, by computing and averaging multiple samples per pixel. Still, for most image-rendering algorithms (e.g., ray tracing, rasterization-based rendering) this might not be very practical, dramatically decreasing overall performance by computing color samples that are eventually discarded through averaging.
Morphological anti-aliasing (MLAA) is a technique based on the recognition of certain patterns within an image. Once these patterns are found, colors may be blended around these patterns, aiming at achieving the most probable a posteriori estimation of a given image. MLAA has a set of unique characteristics distinguishing it from other anti-aliasing algorithms. MLAA is completely independent from the rendering pipeline. It represents a single post-processing kernel, which can be implemented on the GPU even if the main algorithm runs on the CPU. MLAA, even in an un-optimized implementation, is reasonably fast, processing about 20M pixels per second on a single 3 GHz core.
MLAA is an established anti-aliasing technique for two-dimensional images. However, performing the same MLAA technique used for two-dimensional images on a three-dimensional re-projection presents additional problems that must be addressed.
It is within this context that embodiments of the present invention arise.